#ifndef __EXCEPTION_H__
#define __EXCEPTION_H__

#include "util/util_config.h"
#include <stdexcept>

NS_UTIL_BEGIN

// Exception Definition
typedef std::exception exception;
typedef std::logic_error logic_error;
typedef std::runtime_error runtime_error;
typedef std::overflow_error overflow_error;
typedef std::out_of_range out_of_range;

class size_not_match : public logic_error
{
public:
	typedef logic_error base_type;

	size_not_match():base_type("Error: size not match!"){}
	size_not_match(std::string& msg):base_type(msg){}
	size_not_match(const char* msg):base_type(msg){}
	virtual ~size_not_match(){}
};

NS_UTIL_END
#endif